package com.fintech.datagroud.dao.shzx;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fintech.datagroud.entity.wechat.EdcWxZxQueryMessageRecordsInfo;
import com.fintech.third.model.shzx.EdcZxPersonalAddrInfo;
import com.fintech.third.model.shzx.EdcZxPersonalBasicInfo;
import com.fintech.third.model.shzx.EdcZxPersonalFirstOneRelationInfo;
import com.fintech.third.model.shzx.EdcZxPersonalFirstTwoRelationInfo;
import com.fintech.third.model.shzx.EdcZxPersonalGuaranteeInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanApplyInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanOrderDetailsInfo;
import com.fintech.third.model.shzx.EdcZxPersonalLoanOrderInfo;
import com.fintech.third.model.shzx.EdcZxPersonalNewCredit;
import com.fintech.third.model.shzx.EdcZxPersonalPromptInfo;
import com.fintech.third.model.shzx.EdcZxPersonalQueryInfo;
import com.fintech.third.model.shzx.EdcZxPersonalRecordsInfo;
import com.fintech.third.model.shzx.EdcZxPersonalSpecialOrderInfo;
import com.fintech.third.model.shzx.EdcZxPersonalSpouseInfo;
import com.fintech.third.model.shzx.EdcZxPersonalUnitInfo;
import com.fintech.third.model.shzx.EdcZxQueryMessageRecordsInfo;

public interface EdcZxPersonalBaoGaoInfoMapper {
	
	
		
	//个人查询信息
	int insertPersonalInfo(EdcZxPersonalQueryInfo record);
	
	// 上海资信新版收费报告接口
	int insertPersonalNewCredit(EdcZxPersonalNewCredit record);

	//个人基本信息表
	int insertBasic(EdcZxPersonalBasicInfo record);
		
	//个人住址信息
	int insertAddr(List<EdcZxPersonalAddrInfo> record);	
	//配偶信息
	int insertPersonalSpouse(EdcZxPersonalSpouseInfo record);
	//单位信息
	int insertPersonalUnit(List<EdcZxPersonalUnitInfo> record);
	//第一联系人信息
	int insertOneRelation(List<EdcZxPersonalFirstOneRelationInfo> record);	
	//第二联系人信息
	int insertTwoRelation(List<EdcZxPersonalFirstTwoRelationInfo> record);
	
	//担保信息记录表
	int insertGuarantee(List<EdcZxPersonalGuaranteeInfo> record);
	
	//个人贷款信息
	int insertLoanApply(List<EdcZxPersonalLoanApplyInfo> record);
	
	//贷款交易详情信息
	int insertOrderDetails(List<EdcZxPersonalLoanOrderDetailsInfo> record);
	
	//贷款交易概要信息
	int insertLoanOrder(EdcZxPersonalLoanOrderInfo record);
	
	//资信提示信息
	int insertPrompt(List<EdcZxPersonalPromptInfo> record);
	
	//个人查询记录
	int insertRecordsInfo(List<EdcZxPersonalRecordsInfo> record);
	
	//个人声明信息
	//int insertStatement(List<EdcZxPersonalStatementInfo> record);
	
	//特殊交易信息
	int insertSpecialOrderInfo(List<EdcZxPersonalSpecialOrderInfo> record);
	
	

	//查询个人征信报告记录信息
	int insertMessageRecords(EdcZxQueryMessageRecordsInfo record);
	
	
	
	//查询个人基本信息,除配偶信息
	EdcZxPersonalBasicInfo queryEdcZxPersonalBasicInfo(String reqNo);
	
	///**查询信息原因
	EdcZxPersonalQueryInfo queryPersonalQueryInfo(String reqNo);
	
	//查询配偶信息
	EdcZxPersonalSpouseInfo queryPersonalSpouseInfo(String reqNo);
	
	//个人贷款信息
	List<EdcZxPersonalLoanApplyInfo> queryPersonalLoanApplyInfo(String reqNo);
	
	//个人交易概要信息
	EdcZxPersonalLoanOrderInfo queryPersonalLoanOrderInfo(String reqNo);
	
	//个人交易详情信息
	List<EdcZxPersonalLoanOrderDetailsInfo> queryPersonalLoanOrderDetailsInfo(String reqNo);
	
	//个人担保信息
	List<EdcZxPersonalGuaranteeInfo> queryPersonalGuaranteeInfo(String reqNo);
	
	//特殊交易信息
	List<EdcZxPersonalSpecialOrderInfo> queryPersonalSpecialOrderInfo(String reqNo);
	
	//查询记录信息
	List<EdcZxPersonalRecordsInfo> queryPersonalRecordsInfo(String reqNo);
	
	//资信提示信息
	List<EdcZxPersonalPromptInfo> queryPersonalPromptInfo(String reqNo);
	
	//个人征信报告记录信息
	List<EdcZxQueryMessageRecordsInfo> queryMessageRecordsInfo(String loanId);
	
	//个人地址信息
	List<EdcZxPersonalAddrInfo> queryPersonalAddr(String reqNo);
	//工作单位信息
	List<EdcZxPersonalUnitInfo> queryPersonalUnitInfo(String reqNo);
	//联系人信息
	List<EdcZxPersonalFirstOneRelationInfo> queryPersonalFirstOneRelationInfo(String reqNo);

	
	
	/**
	 * 关联查询报文信息记录个人职业(工作单位)信息
	 * @return
	 */
	public Map<String, String> queryZxDataInfo(@Param("loanId") String loanId);
	
	public List<Map<String, Object>> queryShZxSituaInfo(@Param("loanId") String loanId);
	
	public EdcZxPersonalLoanOrderInfo queryPersonalLoanOrderInfoByLoanId(String loanId);

	/**
	 * 
	 * 插入错误数据
	 * 微信小程序调用
	 *
	 * @param recordsInfo
	 */
	int insertWxMessageRecords(EdcWxZxQueryMessageRecordsInfo recordsInfo);

	/**
	 * 根据手机号查询上海咨讯个人征信报告记录信息
	 * @param string
	 * @return
	 */
	List<EdcWxZxQueryMessageRecordsInfo> queryWxMessageRecordsInfo(String mobileNo);
}
